package movilmax.sia_corp.action;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import sun.security.util.Debug;
import utilidades.Cadena;
import movilmax.sia_corp.model.Listax;
import movilmax.sia_corp.model.Usuario;

import apli.conectar.Conectar;
import basedatos.BaseDatos;
import basedatos.Fecha;
import basedatos.Resultado;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class CargarListasContrato extends ActionSupport {
		private static final long serialVersionUID = 1L;
		private List<Listax>  recurrentes;
		private List<Listax>  bancos;
		private List<Listax>  promociones;
		private List<Listax>  formas_pago;
		private List<Listax>  tipos_contrato;
		private List<Listax>  servicios;
		private List<Listax>  vendedores;
		private List<Listax>  sucursales;
		
	    private String tp_contrato;
	    private String promo;
	    private String serial;
	    private String tp_disp;
	    private String cod_disp;
	    private String mac;
	    private String con_base;
	    private String servicio;
	    private String des_servicio;
	    private String no_servicio;
	    private String forzar_base;
	    private String fecha_contrato;
	    private String opc;
	    
	    private String neto_prod;
	    private String neto_serv;
	    private String neto_acce;
	    private String iva_prod;
	    private String iva_serv;
	    private String iva_acce;
	    private String tot_prod;
	    private String tot_serv;
	    private String tot_acce;
	    
	    private String tot_neto;
	    private String tot_iva;
	    private String tot_gen;
	    
	    private String total;
	    private String diasp;
	    private String des_pror;
	    private String en_letras;
	    
	    public String cargarSucursdales(BaseDatos BD){
	    	sucursales=new ArrayList<Listax>();
	    	Map<?, ?> session = ActionContext.getContext().getSession();
        	Usuario USUARIO = (Usuario) session.get("ses_usuario");
			if(USUARIO==null){
				this.addActionError("La sesion del usuario ha caducado" ); 
				return ERROR;
			}
			String SQL=" ";
	    	if(USUARIO.getPerfil().getCod().equals("4") ){//gerente
	    		SQL="  select cod, descripcion from sucursales where mostrar='1' and empresa='1' Order by descripcion";
	    	}else if(USUARIO.getPerfil().getCod().equals("3") ){//supervisor
	    		SQL=" select cod, descripcion from sucursales where cod='"+ USUARIO.getSucursal().getCod()+"' and mostrar='1' and empresa='1' Order by descripcion ";
	    	}else if(USUARIO.getPerfil().getCod().equals("2") ){ //usuario	
	    		SQL=" - ";
	    	}else if(USUARIO.getPerfil().getCod().equals("1") || USUARIO.getPerfil().equals("5") || USUARIO.getPerfil().equals("6")  ){ //super usuarios...	
	    	    SQL=" select cod, descripcion from sucursales where mostrar='1' and empresa='1' Order by descripcion";
	    	}
			Resultado RCS=BD.consultar(SQL);
			if(RCS.RP){
				  do{ 
					  Listax LST=new Listax();
					  LST.setCod(RCS.getCadena("cod"));
					  LST.setDescripcion(RCS.getCadena("descripcion").toUpperCase());
					  sucursales.add(LST);
				  }while(RCS.sigItem()); 
			}
			return SUCCESS;  
		}
	    
	    @SuppressWarnings("rawtypes")
		public String cargarVendedores( BaseDatos BD){
	    	Map session = ActionContext.getContext().getSession();
        	Usuario USUARIO = (Usuario) session.get("ses_usuario");
			if(USUARIO==null){
				this.addActionError("La sesion del usuario ha caducado" ); 
				return ERROR;
			}
	    	vendedores=new ArrayList<Listax>();
	    	String SQL="";
	    	if(USUARIO.getPerfil().getCod().equals("4") ){//gerente
	    		if( USUARIO.getDepartamento().getCod().equals("4")){
	    			SQL=" select cod, descripcion from vendedores where mostrar='1' and tipo in('CORPORATIVO' ) Order by descripcion ";
	    		}else if( USUARIO.getDepartamento().getCod().equals("16")){
	    			SQL=" select cod, descripcion from vendedores where mostrar='1' and tipo in('PYME' ) Order by descripcion ";
	    		}else{
	    			SQL=" select cod, descripcion from vendedores where mostrar='1' and tipo in('WIMAX' ) Order by descripcion ";
	    		}
	    	}else if(USUARIO.getPerfil().getCod().equals("3") ){//supervisor
	    		if( USUARIO.getDepartamento().getCod().equals("4")){
	    			SQL="select V.cod,V.descripcion from vendedores V,usuarios U where V.mostrar='1' and V.tipo in('CORPORATIVO') and V.ocultar='0' and V.usuario=U.usuario and U.sucursal='"+ USUARIO.getSucursal().getCod()+"' Order by descripcion ";
	    		}else if( USUARIO.getDepartamento().getCod().equals("16")){
	    			SQL="select V.cod,V.descripcion from vendedores V,usuarios U where V.mostrar='1' and V.tipo in('PYME') and V.ocultar='0' and V.usuario=U.usuario and U.sucursal='"+ USUARIO.getSucursal().getCod()+"' Order by descripcion ";
	    		}else{
	    			SQL="select V.cod,V.descripcion from vendedores V,usuarios U where V.mostrar='1' and V.tipo in('WIMAX') and V.ocultar='0' and V.usuario=U.usuario and U.sucursal='"+ USUARIO.getSucursal().getCod()+"' Order by descripcion ";
	    		}
	    	}else if(USUARIO.getPerfil().getCod().equals("2") ){ //usuario	
	    		SQL=" select cod, descripcion from vendedores where usuario ='"+USUARIO.getCod_vendedor() +"' Order by descripcion ";
	    	}else if(USUARIO.getPerfil().getCod().equals("1") || USUARIO.getPerfil().equals("5") || USUARIO.getPerfil().equals("6")  ){ //super usuarios...	
	    	    SQL="select cod, descripcion from vendedores where mostrar='1' and tipo in('TODOS','NORMAL','CORPORATIVO','WIMAX','PYME' ) Order by descripcion ";
	    	}
			Resultado RCS=BD.consultar(SQL);
			  if(RCS.RP){
				  do{ 
					  Listax LST=new Listax();
					  LST.setCod(RCS.getCadena("cod"));
					  LST.setDescripcion(RCS.getCadena("descripcion").toUpperCase());
					  vendedores.add(LST);
				  }while(RCS.sigItem()); 
			  }
			return SUCCESS;  
		}
	    
		public String cargarServicios( BaseDatos BD){
			servicios=new ArrayList<Listax>();
			if(this.getPromo()==null){
				this.addActionError("Debe indicar el tipo de promocion" ); 
				return ERROR;
			}
			if(this.getTp_contrato()==null){
				this.addActionError("Debe indicar el tipo de contrato" ); 
				return ERROR;
			}
			if(this.getCod_disp() ==null){
				this.addActionError("Debe indicar el tipo de dispositivo" ); 
				return ERROR;
			}
			if(this.getFecha_contrato()==null ) {
				this.addActionError("Debe indicar la fecha del contrato" ); 
				return ERROR;
			}
			if(this.getFecha_contrato().length()==0 ) {
				this.addActionError("Debe indicar la fecha del contrato" ); 
				return ERROR;
			}
			Fecha F=new Fecha(this.getFecha_contrato());
			String SQL=""; 
			SQL = "Select P.codigo as cod,P.descripcion " +
		          "From productos P,productos_x_empresa Z,servicios_x_tipo X,precios Y  "+
		          "Where Z.producto=P.codigo and Z.empresa='1' and X.activo='1' and P.tipo='2' and X.empresa='1' and Y.monto_base>0 "+
		          "and not P.codigo in ('35','150','265','573','574') and P.corporativo='0' and P.status='1' and P.codigo=X.servicio "+
		          "and X.tipo='"+this.getTp_contrato()+"' and Y.producto=P.codigo and Y.dispositivo ='"+this.getCod_disp() +"' and Y.inicio<='"+F.getFecha()+ "' and '"+F.getFecha()+ "'<= Y.fin  " +
		          "Order by P.descripcion ";  
			Resultado RCS=BD.consultar(SQL);
			if(RCS.RP){
			   do{ 
				   Listax LST=new Listax();
				   LST.setCod(RCS.getCadena("cod"));
				   LST.setDescripcion(RCS.getCadena("descripcion").toUpperCase());
				   servicios.add(LST); 
			   }while(RCS.sigItem()); 
			}
			return SUCCESS;  
		}
		
	    public String cargarTiposContrato(){
	    	    tipos_contrato=new ArrayList<Listax>();
				Listax LST=new Listax();
				LST.setCod("PREPAGO");
				LST.setDescripcion("PREPAGO");
				tipos_contrato.add(LST);
				LST=new Listax();
				LST.setCod("POSTPAGO");
				LST.setDescripcion("POSTPAGO");
				tipos_contrato.add(LST);
				LST=new Listax();
				LST.setCod("PYME");
				LST.setDescripcion("PYME");
				tipos_contrato.add(LST);
			    return SUCCESS;  
		}
	    public String cargarRecurrentes(BaseDatos BD){
			recurrentes=new ArrayList<Listax>();
			String SQL=" select cod, descripcion from tipos_recurrente where mostrar='1' Order by descripcion ";
			  Resultado RCS=BD.consultar(SQL);
			  if(RCS.RP){
				  do{ 
					  Listax LST=new Listax();
					  LST.setCod(RCS.getCadena("cod"));
					  LST.setDescripcion(RCS.getCadena("descripcion").toUpperCase());
					  recurrentes.add(LST);
				  }while(RCS.sigItem()); 
			  }
			return SUCCESS;  
		}
		public String cargarBancos( BaseDatos BD){
			bancos=new ArrayList<Listax>();
			String SQL=" select cod, descripcion from bancos where mostrar='1' Order by descripcion ";
			Resultado RCS=BD.consultar(SQL);
			  if(RCS.RP){
				  do{ 
					  Listax LST=new Listax();
					  LST.setCod(RCS.getCadena("cod"));
					  LST.setDescripcion(RCS.getCadena("descripcion").toUpperCase());
					  bancos.add(LST);
				  }while(RCS.sigItem()); 
			  }
			return SUCCESS;  
		}
		public String cargarPromociones(BaseDatos BD){
			promociones=new ArrayList<Listax>();
			if(this.getTp_contrato()==null){
				return SUCCESS;
			}
			Fecha FECHA=new Fecha();
			String FI=FECHA.getFecha();
			String FF=FECHA.getFecha();
			//String SQL="Select cod,descripcion From promociones Where stands='1' and tipo in ('TODOS','"+ this.getTp_contrato()+"' ) and inicio<='"+FI+"' and '"+FF+"'<=fin Order by cod";
			String SQL="Select cod,descripcion From promociones Where stands='1' and tipo='"+ this.getTp_contrato()+"' and inicio<='"+FI+"' and '"+FF+"'<=fin Order by cod";
			Resultado RCS=BD.consultar(SQL);
			if(RCS.RP){
			   do{ 
				  Listax LST=new Listax();
				  LST.setCod(RCS.getCadena("cod"));
				  LST.setDescripcion(RCS.getCadena("descripcion").toUpperCase() );
				  promociones.add(LST);
			   }while(RCS.sigItem()); 
			}
			return SUCCESS;  
		}
		public String cargarFormasPago( BaseDatos BD){
			formas_pago=new ArrayList<Listax>();
			String SQL=" select cod, descripcion from formas_pago where mostrar='1' and stands='1' Order by descripcion ";
			Resultado RCS=BD.consultar(SQL);
			  if(RCS.RP){
				  do{ 
					  Listax LST=new Listax();
					  LST.setCod(RCS.getCadena("cod"));
					  LST.setDescripcion(RCS.getCadena("descripcion").toUpperCase() );
					  formas_pago.add(LST);
				  }while(RCS.sigItem()); 
			  }
			return SUCCESS;  
		}
		@SuppressWarnings("rawtypes")
		public String getJSON(){
			Map session = ActionContext.getContext().getSession();
        	Usuario USUARIO = (Usuario) session.get("ses_usuario");
			if(USUARIO==null){
				this.addActionError("La sesion del usuario ha caducado" ); 
				return ERROR;
			}
			Conectar BASE=new Conectar();
			if(BASE.getMsg().equals("SI")){
				if(this.getOpc()==null){
					cargarTiposContrato();
					cargarPromociones(BASE.getBaseDatos());
				}else{
					if(this.getOpc().equals("1") ){//bancos
						cargarBancos(BASE.getBaseDatos());
					}else if(this.getOpc().equals("2") ){//formas pago
						cargarFormasPago(BASE.getBaseDatos());
					}else if(this.getOpc().equals("3") ){//servicios x serial
						cargarServicios(BASE.getBaseDatos());
					}else if(this.getOpc().equals("4") ){//vendedores
						cargarVendedores(BASE.getBaseDatos());
					}else if(this.getOpc().equals("5") ){//sucursales
						cargarSucursdales(BASE.getBaseDatos());
					}
				}
				BASE.getBaseDatos().cerrarConexion();
			  	return SUCCESS;
			}else{
				this.addActionError("No hay conexion al servidor");
				return ERROR;
			}
	  }
      @SuppressWarnings("rawtypes")
		public String validar_serial(){
        	Map session = ActionContext.getContext().getSession();
        	Usuario USUARIO = (Usuario) session.get("ses_usuario");
			if(USUARIO==null){
				this.addActionError("La sesion del usuario ha caducado" ); 
				return ERROR;
			}
			if(this.getPromo()==null){
				this.addActionError("Debe indicar el tipo de promocion" ); 
				return ERROR;
			}
			if(this.getSerial()==null){
				this.addActionError("Debe indicar el serial" ); 
				return ERROR;
			}
			if(this.getSerial().length()==0 ){
				this.addActionError("Debe indicar el serial" ); 
				return ERROR;
			}
			Conectar BASE=new Conectar();
			if(BASE.getMsg().equals("SI")){
				String SQL="Select D.mac,D.status_stock,D.tipo,D.cproducto,D.ubicacion,S.descripcion as des_sucursal From dispositivos D,sucursales S where D.serial_fabrica='"+this.getSerial()+ "' and D.ubicacion=S.cod ";
				Resultado RCS=BASE.getBaseDatos().consultar(SQL);
				if(RCS.RP){
				   	if(RCS.getCadena("status_stock").equals("ROBADO") ){
				   		this.addActionError("El dispositivo esta reportado como robado" ); 
						return ERROR;
				   	}
				   	if(!RCS.getCadena("ubicacion").equals(USUARIO.getSucursal().getCod() ) ){
				   		this.addActionError("El dispositivo esta asignado a la sucursal="+RCS.getCadena("des_sucursal") ); 
						return ERROR;
				   	}
				   	this.setMac(RCS.getCadena("mac"));
				   	this.setTp_disp(RCS.getCadena("tipo"));
				   	this.setCod_disp(RCS.getCadena("cproducto"));
				   	if(this.getCod_disp().equals("28")){
				   	   this.setCon_base("1");
				   	}else{
				   	   this.setCon_base("2");	
				   	}
				   	RCS.liberar();
				   	SQL="Select D.mac,D.contrato From detalle_contrato D where D.mac='"+this.getMac()+"'  ";
				   	RCS=BASE.getBaseDatos().consultar(SQL);
					if(RCS.RP){
						RCS.liberar();
						this.addActionError("El dispositivo no esta disponible, se encuentra asignado al contrato="+RCS.getCadena("contrato") ); 
						return ERROR;
					}else{
						setNo_servicio("2");
						setForzar_base("2");
						if(!this.getPromo().equals("-1") && !this.getPromo().equals("0") && !this.getPromo().equals("1") ){
							SQL = "Select P.descripcion,P.codigo as cod,D.tipo From promociones X,detalle_promocion D,productos P " +
						           "Where X.cod='"+this.getPromo()+"' and x.cod = D.promocion And D.producto = P.codigo Order by D.tipo ASC";
							  RCS=BASE.getBaseDatos().consultar(SQL);
							  if(RCS.RP){
								  do{ 
									  if(RCS.getCadena("tipo").equals("1")){//servicio
										  this.setServicio(RCS.getCadena("cod"));
										  this.setDes_servicio(RCS.getCadena("descripcion").toUpperCase());
										  this.setNo_servicio("1");
									   }else if(RCS.getCadena("tipo").equals("2")){//producto
										  if(! RCS.getCadena("cod").equals(getCod_disp()) ){
											  this.addActionError("La promocion seleccionada no incluye el dispositivo asociado al serial ingresado" ); 
											  return ERROR;
										  }
									   }else if(RCS.getCadena("tipo").equals("3")){//base obligatoria
										  this.setForzar_base("1");
										  this.setCon_base("2");	
									   } 
								  }while(RCS.sigItem()); 
								RCS.liberar();
						     } 
						 }
						return SUCCESS;
					}
				}else{
					this.addActionError("El serial= "+this.getSerial()+", no esta registrado en el sistema" ); 
					return ERROR;
				}
			}else{
				this.addActionError("No hay conexion al servidor");
				return ERROR;
			}
        }
        @SuppressWarnings("rawtypes")
		public String calcular_totales(){
        	Map session = ActionContext.getContext().getSession();
        	Usuario USUARIO = (Usuario) session.get("ses_usuario");
			if(USUARIO==null){
				this.addActionError("La sesion del usuario ha caducado" ); 
				return ERROR;
			}
			if(this.getPromo()==null){
				this.addActionError("Debe indicar el tipo de promocion" ); 
				return ERROR;
			}
			if(this.getTp_contrato()==null){
				this.addActionError("Debe indicar el tipo de contrato" ); 
				return ERROR;
			}
			if(this.getCod_disp() ==null){
				this.addActionError("Debe indicar el codigo del  dispositivo" ); 
				return ERROR;
			}
			if(this.getServicio()==null){
				this.addActionError("Debe seleccionar el servicio" ); 
				return ERROR;
			}
			if(this.getServicio().equals("-1")  ) {
				this.addActionError("Debe seleccionar el servicio" ); 
				return ERROR;
			}
			if(this.getFecha_contrato()==null ) {
				this.addActionError("Debe indicar la fecha del contrato" ); 
				return ERROR;
			}
			if(this.getFecha_contrato().length()==0 ) {
				this.addActionError("Debe indicar la fecha del contrato" ); 
				return ERROR;
			}
			Conectar BASE=new Conectar();
			if(BASE.getMsg().equals("SI")){
				Resultado RCS=new Resultado();
				String SQL="";
				Fecha F=new Fecha( this.getFecha_contrato());
				boolean pd=false,ps=false,pa=false;
			    this.setNeto_serv("0");
			    this.setNeto_acce("0");
			    this.setNeto_prod("0");
			    
			    this.setIva_acce("0");
			    this.setIva_prod("0");
			    this.setIva_serv("0");
			    
			    this.setTot_serv("0");
			    this.setTot_prod("0");
			    this.setTot_acce("0");
			    
			    this.setTot_gen("0");
			    this.setTot_iva("0");
			    this.setTot_neto("0");
			    double neto_serv=0D;
			    Cadena C=new Cadena();
				if(!this.getPromo().equals("-1")){
					SQL = "Select D.tipo,D.monto,P.descripcion From promociones X,detalle_promocion D,productos P " +
					      "Where X.cod='"+this.getPromo()+"' and x.cod = D.promocion and D.producto=P.codigo Order by D.tipo ASC";
				    RCS=BASE.getBaseDatos().consultar(SQL);
					if(RCS.RP){
						do{ 
							 if(RCS.getCadena("tipo").equals("1")){//servicio
								 ps=true; 
								 double tot = RCS.getDoble("monto");	
								 neto_serv = C.redondear((tot / 1.12D),2); 
								 double iva = C.redondear((neto_serv * 0.12D),2);
								 this.setNeto_serv(C.convertirStr(  neto_serv ) );
								 this.setIva_serv( C.convertirStr(  iva ) );
								 this.setTot_serv(RCS.getCadena("monto"));
								 this.setDes_servicio(RCS.getCadena("descripcion").toUpperCase());
							 }else if(RCS.getCadena("tipo").equals("2")){//producto
								 pd=true;
								 double tot = RCS.getDoble("monto");	
								 double net = C.redondear((tot / 1.12D),2); 
								 double iva = C.redondear((net * 0.12D),2);
								 this.setNeto_prod(C.convertirStr(  net ));
								 this.setIva_prod(C.convertirStr(  iva ) );
								 this.setTot_prod(RCS.getCadena("monto") );
							 }else if(RCS.getCadena("tipo").equals("3")){//accesorios
								 pa=true; 
								 double tot = RCS.getDoble("monto");	
								 double net = C.redondear((tot / 1.12D),2); 
								 double iva = C.redondear((net * 0.12D),2);
								 this.setNeto_acce(C.convertirStr( net ) );
								 this.setIva_acce(C.convertirStr( iva ) );
								 this.setTot_acce(RCS.getCadena("monto") ); 
							 } 
					  }while(RCS.sigItem()); 
				   }
			    }
				if(ps==false){ //servicio
					SQL = "Select P.descripcion,round(  (X.monto_base*(X.alicuota/100)),2) as iva,round( ((X.monto_base*(X.alicuota/100))+ X.monto_base),2) as total,X.monto_base from precios X,productos P where P.codigo='"+this.getServicio()+"' and X.dispositivo='"+ this.getCod_disp() +"' and P.codigo=X.producto and X.inicio  <='"+F.getFecha()+"' and '"+F.getFecha()+"'<=X.fin ";
					RCS=BASE.getBaseDatos().consultar(SQL);
					if(RCS.RP){
						neto_serv=RCS.getDoble("monto_base");
						this.setNeto_serv(RCS.getCadena("monto_base"));
						this.setIva_serv(RCS.getCadena("iva"));
						this.setTot_serv( RCS.getCadena("total"));
						this.setDes_servicio(RCS.getCadena("descripcion"));
					}
				}
				if(pd==false){//producto
					if(this.getTp_contrato().equals("PREPAGO") ){
						SQL = "Select round( (X.monto_mayor*(X.alicuota/100)),2) as iva,round(((X.monto_mayor*(X.alicuota/100))+ X.monto_mayor),2) as total,X.monto_mayor as monto_base from precios X  where X.producto='"+ this.getCod_disp() +"' and X.inicio  <='"+F.getFecha()+"' and '"+ F.getFecha()+ "'<=X.fin ";
					}else{
						SQL = "Select round( (X.monto_base*(X.alicuota/100)),2) as iva,round(((X.monto_base*(X.alicuota/100))+ X.monto_base),2) as total,X.monto_base from precios X  where X.producto='"+ this.getCod_disp() +"' and X.inicio  <='"+F.getFecha()+"' and '"+ F.getFecha()+ "'<=X.fin ";
					}
					RCS=BASE.getBaseDatos().consultar(SQL);
					if(RCS.RP){
						 this.setNeto_prod(RCS.getCadena("monto_base") );
						 this.setIva_prod(RCS.getCadena("iva") );
						 this.setTot_prod( RCS.getCadena("total") );
					}					
				}
				if(pa==false){//accesorios
					try{
						Debug.println("BASE", getCon_base() );
						if(this.getCon_base().equals("true") ){
							SQL = "Select round( (X.monto_base*(X.alicuota/100)),2) as iva,round(  ((X.monto_base*(X.alicuota/100))+ X.monto_base),2) as total,X.monto_base from precios X,productos P  where P.codigo='264' and P.codigo=X.producto and X.inicio  <='"+F.getFecha()+"' and '"+ F.getFecha()+ "'<=X.fin ";
							RCS=BASE.getBaseDatos().consultar(SQL);
							if(RCS.RP){
								this.setNeto_acce(RCS.getCadena("monto_base") );
								this.setIva_acce(RCS.getCadena("iva") );
								this.setTot_acce(RCS.getCadena("total") );  
							}		
						}
				   }catch(Exception err_nobj){
					   err_nobj.printStackTrace();
				   }
				}
				//calcular prorrateo
				int resto=C.convertirInt(F.buscarDiasMes(F.getMes()));
				if(this.getTp_contrato().equals("POSTPAGO") || this.getTp_contrato().equals("PYME") ){
					if(F.getDia()>1){
						//if(this.getPromo().equals("-1")){
							int diasm=resto;
							resto=diasm-(F.getDia());
							resto++;
							if(F.getDia()==diasm  ){
								this.setDes_servicio(this.getDes_servicio());
								this.setDes_pror(" ( 1 ) Dia.");
							}else{
								this.setDes_servicio( this.getDes_servicio());
								this.setDes_pror(" ( "+resto+" ) Dias.");
							}
							double val_dia=neto_serv/diasm;
							neto_serv=val_dia*(resto);
							double iva = C.redondear((neto_serv * 0.12D),2);
							double tot = iva+neto_serv;	
							this.setNeto_serv(C.convertirStr(neto_serv));
							this.setIva_serv(C.convertirStr(iva));
							this.setTot_serv(C.convertirStr(tot));
						//}	
					}
				}
				//calcular totales....
				 double tt_net =  C.redondear(C.convertirDoble( this.getNeto_serv() )+C.convertirDoble( this.getNeto_prod() )+ C.convertirDoble( this.getNeto_acce() ),2 ) ;
				 double tt_iva =  C.redondear(C.convertirDoble( this.getIva_serv() )+C.convertirDoble( this.getIva_prod() )+ C.convertirDoble( this.getIva_acce() ),2 ) ;
				 double tt_gen =  C.redondear(tt_net + tt_iva,2);
				 this.setTot_neto(C.formatearNumero(tt_net));
				 this.setTot_iva(C.formatearNumero(tt_iva));
				 this.setTot_gen(C.formatearNumero(tt_gen));
				 
				 this.setTot_serv (C.formatearNumero(C.convertirDoble( this.getTot_serv() )));
				 this.setTot_prod(C.formatearNumero(C.convertirDoble( this.getTot_prod() )));
				 this.setTot_acce(C.formatearNumero(C.convertirDoble( this.getTot_acce() )));
				 this.setNeto_serv (C.formatearNumero(C.convertirDoble( this.getNeto_serv() )));
				 this.setNeto_prod(C.formatearNumero(C.convertirDoble( this.getNeto_prod() )));
				 this.setNeto_acce(C.formatearNumero(C.convertirDoble( this.getNeto_acce() )));
				 this.setIva_serv (C.formatearNumero(C.convertirDoble( this.getIva_serv() )));
				 this.setIva_prod(C.formatearNumero(C.convertirDoble( this.getIva_prod() )));
				 this.setIva_acce(C.formatearNumero(C.convertirDoble( this.getIva_acce() )));
				 if( this.getTot_acce().equals("0.00") ||  this.getTot_acce().equals("0") ){
					 this.setIva_acce("0,00");
					 this.setNeto_acce("0,00");
					 this.setTot_acce("0,00");
				 }
				 this.setTotal(C.convertirStr(tt_gen));
				 this.setDiasp(C.convertirStr(resto));
				 String valx=C.reemplazar(this.getTot_gen(),".",",");
				 String ts[]=valx.split(",");
				 String con="";
				 if( C.convertirInt(ts[1]) >0 ){
					 con=" Bolivares con "+C.convertirLetras(C.convertirLong( ts[1]) ).toLowerCase() +" Centimos";
				 }else{
					 con=" Bolivares ";
				 }
				 this.setEn_letras(C.convertirLetras(C.convertirLong( ts[0]) ).toLowerCase()+con  )  ;
				 BASE.getBaseDatos().cerrarConexion();
				 return SUCCESS;
			}else{
				this.addActionError("No hay conexion al servidor");
				return ERROR;
			}
        }
        
		public List<Listax> getRecurrentes(){
			return recurrentes;
		}
		public void setRecurrentes(List<Listax> recurrentes) {
			this.recurrentes = recurrentes;
		}
		public List<Listax> getBancos() {
			return bancos;
		}
		public void setBancos(List<Listax> bancos) {
			this.bancos = bancos;
		}
		public List<Listax> getPromociones() {
			return promociones;
		}
		public void setPromociones(List<Listax> promociones) {
			this.promociones = promociones;
		}
		public List<Listax> getFormas_pago() {
			return formas_pago;
		}
		public void setFormas_pago(List<Listax> formas_pago) {
			this.formas_pago = formas_pago;
		}
		public String getTp_contrato() {
			return tp_contrato;
		}
		public void setTp_contrato(String tp_contrato) {
			this.tp_contrato = tp_contrato;
		}
		public String getOpc() {
			return opc;
		}
		public void setOpc(String opc) {
			this.opc = opc;
		}
		public List<Listax> getTipos_contrato() {
			return tipos_contrato;
		}
		public void setTipos_contrato(List<Listax> tipos_contrato) {
			this.tipos_contrato = tipos_contrato;
		}
		public List<Listax> getServicios() {
			return servicios;
		}
		public void setServicios(List<Listax> servicios) {
			this.servicios = servicios;
		}
		public String getSerial() {
			return serial;
		}
		public void setSerial(String serial) {
			this.serial = serial;
		}
		public String getPromo() {
			return promo;
		}
		public void setPromo(String promo) {
			this.promo = promo;
		}
		public String getTp_disp() {
			return tp_disp;
		}
		public void setTp_disp(String tp_disp) {
			this.tp_disp = tp_disp;
		}
		public String getCod_disp() {
			return cod_disp;
		}
		public void setCod_disp(String cod_disp) {
			this.cod_disp = cod_disp;
		}
		public String getMac() {
			return mac;
		}
		public void setMac(String mac) {
			this.mac = mac;
		}
		public String getCon_base() {
			return con_base;
		}
		public void setCon_base(String con_base) {
			this.con_base = con_base;
		}
		public String getServicio() {
			return servicio;
		}
		public void setServicio(String servicio) {
			this.servicio = servicio;
		}
		public String getNo_servicio() {
			return no_servicio;
		}
		public void setNo_servicio(String no_servicio) {
			this.no_servicio = no_servicio;
		}
		public String getDes_servicio() {
			return des_servicio;
		}
		public void setDes_servicio(String des_servicio) {
			this.des_servicio = des_servicio;
		}
		public String getForzar_base() {
			return forzar_base;
		}
		public void setForzar_base(String forzar_base) {
			this.forzar_base = forzar_base;
		}
		public String getNeto_prod() {
			return neto_prod;
		}
		public void setNeto_prod(String neto_prod) {
			this.neto_prod = neto_prod;
		}
		public String getNeto_serv() {
			return neto_serv;
		}
		public void setNeto_serv(String neto_serv) {
			this.neto_serv = neto_serv;
		}
		public String getNeto_acce() {
			return neto_acce;
		}
		public void setNeto_acce(String neto_acce) {
			this.neto_acce = neto_acce;
		}
		public String getIva_prod() {
			return iva_prod;
		}
		public void setIva_prod(String iva_prod) {
			this.iva_prod = iva_prod;
		}
		public String getIva_serv() {
			return iva_serv;
		}
		public void setIva_serv(String iva_serv) {
			this.iva_serv = iva_serv;
		}
		public String getIva_acce() {
			return iva_acce;
		}
		public void setIva_acce(String iva_acce) {
			this.iva_acce = iva_acce;
		}
		public String getTot_prod() {
			return tot_prod;
		}
		public void setTot_prod(String tot_prod) {
			this.tot_prod = tot_prod;
		}
		public String getTot_serv() {
			return tot_serv;
		}
		public void setTot_serv(String tot_serv) {
			this.tot_serv = tot_serv;
		}
		public String getTot_acce() {
			return tot_acce;
		}
		public void setTot_acce(String tot_acce) {
			this.tot_acce = tot_acce;
		}
		public String getTot_neto() {
			return tot_neto;
		}
		public void setTot_neto(String tot_neto) {
			this.tot_neto = tot_neto;
		}
		public String getTot_iva() {
			return tot_iva;
		}
		public void setTot_iva(String tot_iva) {
			this.tot_iva = tot_iva;
		}
		public String getTot_gen() {
			return tot_gen;
		}
		public void setTot_gen(String tot_gen) {
			this.tot_gen = tot_gen;
		}
		public String getTotal() {
			return total;
		}
		public void setTotal(String total) {
			this.total = total;
		}
		public String getFecha_contrato() {
			return fecha_contrato;
		}
		public void setFecha_contrato(String fecha_contrato) {
			this.fecha_contrato = fecha_contrato;
		}
		public String getDiasp() {
			return diasp;
		}
		public void setDiasp(String diasp) {
			this.diasp = diasp;
		}
		public String getEn_letras() {
			return en_letras;
		}
		public void setEn_letras(String en_letras) {
			this.en_letras = en_letras;
		}
		public String getDes_pror() {
			return des_pror;
		}
		public void setDes_pror(String des_pror) {
			this.des_pror = des_pror;
		}
		public List<Listax> getVendedores() {
			return vendedores;
		}
		public void setVendedores(List<Listax> vendedores) {
			this.vendedores = vendedores;
		}
		public List<Listax> getSucursales() {
			return sucursales;
		}
		public void setSucursales(List<Listax> sucursales) {
			this.sucursales = sucursales;
		}
		
		
}

	
	
	
	

